-- *****************************************************************
-- REDSTONE-FILE-XFER-MIB
--
-- Redstone Communications Inc. Enterprise MIB
--
-- Copyright 1999 Redstone Communications, Incorporated.
-- All Rights Reserved.
-- *****************************************************************

REDSTONE-FILE-XFER-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        TimeTicks
                FROM SNMPv2-SMI
        RowStatus,
        DisplayString
                FROM SNMPv2-TC
        RsName
                FROM REDSTONE-TC
        rsMgmt
                FROM REDSTONE-SMI;


rsFileXferMIB  MODULE-IDENTITY
        LAST-UPDATED "200005010000Z"
        ORGANIZATION "Redstone Communications, Inc."
        CONTACT-INFO
        "
        Redstone Communications, Inc.
                5 Carlisle Road
        Westford MA 01886
        USA
        Tel:    +1-978-692-1999
                Email:  mib@redstonecom.com
        "
        DESCRIPTION
                "
                 The File Transfer MIB for 
                 Redstone Communications Inc. enterprise.
                "

        --  Revision history

        REVISION      "200005010000Z"
        DESCRIPTION
                "Key revisions include:
                  o  Obsoleted rsFileXferRemoteUserName.
                  o  Obsoleted rsFileXferRemoteUserPassword.
                  o  Added rsFileXferRouterName.
                "
        REVISION      "200004270000Z"
        DESCRIPTION
                "Added rsFileXferCopyRunningCfgFailed(9) to rsFileXferStatus."
        REVISION      "9903170000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { rsMgmt 23 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Textual conventions
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- No textual conventions are defined in this MIB module.

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Managed objects
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

rsFileXferObjects    OBJECT IDENTIFIER ::= { rsFileXferMIB 1 }


rsFileXferTable OBJECT-TYPE
    SYNTAX SEQUENCE OF RsFileXferTableEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
            "A list of entries which describe file transfers."
    ::= { rsFileXferObjects 1 }

rsFileXferTableEntry OBJECT-TYPE
    SYNTAX RsFileXferTableEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
            "A description of a particular file transfer entry."
    INDEX { rsFileXferIndex }
    ::= { rsFileXferTable 1 }

RsFileXferTableEntry ::= SEQUENCE {
        rsFileXferIndex               INTEGER,
        rsFileXferDirection           INTEGER,
        rsFileXferFileType            INTEGER,
        rsFileXferRemoteFileName      DisplayString,
        rsFileXferRemoteUserName      DisplayString,
        rsFileXferRemoteUserPassword  OCTET STRING,
        rsFileXferLocalFileName       DisplayString,
        rsFileXferProtocol            INTEGER,
        rsFileXferStatus              INTEGER, 
        rsFileXferRowStatus           RowStatus,
        rsFileXferTimeStamp           TimeTicks,
        rsFileXferRouterName          RsName
        }

rsFileXferIndex OBJECT-TYPE
    SYNTAX INTEGER (1..65535)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
            "A unique index used to identify this entry."
    ::= { rsFileXferTableEntry 1 }

rsFileXferDirection OBJECT-TYPE
    SYNTAX INTEGER {
        rsFileXferLocalToRemote(1),
        rsFileXferRemoteToLocal(2) }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
            "Specifies the direction of the file transfer."
    DEFVAL { rsFileXferRemoteToLocal }    
    ::= { rsFileXferTableEntry 2 }

rsFileXferFileType OBJECT-TYPE
    SYNTAX INTEGER {
        rsFileXferSoftwareRelease(1),
        rsFileXferSystemConfig(2),
        rsFileXferRunningConfig(3),
        rsFileXferSystemLog(4),
        rsFileXferScript(5),
        rsFileXferRebootHistory(6),
        rsFileXferBulkStatistics(7) }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
            "Specifies the file type of the file transfer."
    DEFVAL { rsFileXferBulkStatistics }    
    ::= { rsFileXferTableEntry 3 }

rsFileXferRemoteFileName OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..128))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
            "The full path name of the source/destination file on the
             remote system."
        DEFVAL {""}
    ::= { rsFileXferTableEntry 4 }

rsFileXferRemoteUserName OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..64))
       MAX-ACCESS read-write
       STATUS obsolete
       DESCRIPTION
        "The user name to use when requesting the file transfer
         to/from the remote system.

         This object has been obsoleted. Use the enterprise host
         mib in order to configure the username."
        DEFVAL {"anonymous"}
    ::= { rsFileXferTableEntry 5 }

rsFileXferRemoteUserPassword OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE (0..64))
    MAX-ACCESS read-write
    STATUS obsolete
    DESCRIPTION
        "The password to use when requesting the file transfer to/from
         the remote system. When read, this object returns a zero
         string. Note that, for security reasons, some ftp servers may
         insist on a non-zero length user password.

         This object has been obsoleted. Use the enterprise host mib
         in order to configure the password."
        DEFVAL {"anonymous"}
    ::= { rsFileXferTableEntry 6 }

rsFileXferLocalFileName OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..128))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The local file name to transfer or to create as a result of 
         an incoming transfer."
        DEFVAL {""}
    ::= { rsFileXferTableEntry 7 }

rsFileXferProtocol OBJECT-TYPE
        SYNTAX INTEGER {
                        rsFileXferFtp(1),
                        rsFileXferTftp(2) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Specifies the file transfer protocol type."
        DEFVAL { rsFileXferFtp }
    ::= { rsFileXferTableEntry 8 }

rsFileXferStatus OBJECT-TYPE
    SYNTAX INTEGER {
        rsFileXferSuccessfulCompletion(1),
        rsFileXferInProgress(2),
        rsFileXferRemoteUnreachable(3),
        rsFileXferUserAuthFailed(4),
        rsFileXferFileNotFound(5),
        rsFileXferFileTooBig(6),
        rsFileXferFileIncompatible(7),
        rsFileXferPended(8),
        rsFileXferCopyRunningCfgFailed(9)
    }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The status of the file transfer."
    ::= { rsFileXferTableEntry 9 }

rsFileXferRowStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The row status object controls the creation/deletion of rows
         in this table. Its semantics are the same as those for the
         RowStatus textual convention specified for SNMPv2. 

         Setting this object to createAndGo(4) is allowed.  If required
         objects are missing, the agent will create the row and set its
         status to notReady(3).  If all of the required objects are
         present and valid, the agent will create the row, set it to
         active and commence the file xfer.  Upon completion of the
         file xfer, the agent will set the rowStatus to notInService(2),
         indicating that the row is valid and useable by a management
         client.  To commence another transfer, a management client should
         set the rowStatus to active(1).

         Setting this object to createAndWait(5) causes an entry
         to be created with rsFileXferRowStatus value of notInService(2) if
         all of the required objects are present and valid.  Or, if some
         of the required objects are missing or invalid, the agent will
         create the row and sets its status to notReady(3).
    
         Setting this object to active(1) causes the transfer to
         start for the given row. Objects within the row cannot 
         be modified once a row has been set to active(1),

         Setting this object to destroy(6) causes the corresponding
         row to be deleted.
        
         Note that only a single instance of a row can be active at 
         at any given moment, although several rows can exist in the
             table."
    ::= { rsFileXferTableEntry 10 }

rsFileXferTimeStamp OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
            "The value of sysUpTime at the last status change for this
             entry."
    ::= { rsFileXferTableEntry 11 }

rsFileXferRouterName OBJECT-TYPE
    SYNTAX RsName 
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
            "The name of the router to be used when resolving the hostname
            portion of the rsFileXferRemoteFileName object. If this object
            contains an invalid or empty value, the default router will be
            used."
    ::= { rsFileXferTableEntry 12 }

rsFileXferTrapEnabled OBJECT-TYPE
    SYNTAX     INTEGER { true(1), false(2) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An indication of whether the rsFileXferTrap trap is enabled."
    ::= { rsFileXferObjects 2 }

-- notifications

rsFileXferNotifications OBJECT IDENTIFIER ::= { rsFileXferMIB 2 }

rsFileXferNotifyPrefix OBJECT IDENTIFIER ::= { rsFileXferNotifications 0 }


rsFileXferTrap NOTIFICATION-TYPE
    OBJECTS     { rsFileXferStatus,
                  rsFileXferTimeStamp }
    STATUS      current
    DESCRIPTION
            "An indication that the status associated with a particular
             file transfer entry has changed."
    ::= { rsFileXferNotifyPrefix 1 }

END